package com.java.datastructures.doublecyclelinkedlist;

/**
 * 双向循环链表
 *
 * @author wangning
 * @create 2021-06-20 21:57
 */
public class DoubleCycleNode {
	//上一个节点
	DoubleCycleNode pre = this;
	//下一个节点
	DoubleCycleNode next = this;
	//节点的数据
	int data;
	public DoubleCycleNode(int data) {
		this.data = data;
	}

	//增加节点
	public void after(DoubleCycleNode node) {
		//原来的下一个节点
		DoubleCycleNode nextNext = next;
		//把新节点作为当前节点的下一个节点
		this.next = node;
		//把当前节点作为新节点的前一个节点
		node.pre = this;
		//让原来的下一个节点作为新节点的下一个节点
		node.next = nextNext;
		//让原来的下一个节点的上一个节点为新节点
		nextNext.pre = node;
	}

	//下一个节点
	public DoubleCycleNode next() {
		return this.next;
	}

	//上一个节点
	public DoubleCycleNode  pre() {
		return this.pre;
	}

	//获取数据
	public int getData() {
		return this.data;
	}

}
